Currently, embedded multimedia cards (eMMC) are widely used as main storage mediums of mobile phones, and an internal storage device of an eMMC is a non-linear flash memory (NAND flash), which is referred to as a flash memory for short. An NAND flash reads and writes data in a unit of page, and erases data in a unit of block. At first, a page of an NAND flash is of 512 bytes. However, with development of an NAND flash process, a capacity of the NAND flash becomes increasingly large, and a size of a page is also increased to 8 kilo bytes (“KB” or “K”) or 16 K. The eMMC is a standard and uniform protocol, and a specified unit of reading/writing is 512 bytes. As a result, a write amplification factor is increased and operation efficiency and a service life of the eMMC are affected.
In the prior art, to be compatible with eMMCs of different manufacturers and types, in a Linux system, physical blocks are uniform in size, for example, 512 bytes, using an eMMC driver. In this way, because a unit of reading/writing of an NAND flash is page, that is, 8 KB or 16 KB, although the eMMC reads/writes 512 bytes, operations are amplified to 8 K or 16 K for the NAND flash, leading to problems of low reading and writing efficiency of the eMMC and a short service life of the eMMC.